package arithmetic;

import java.text.DecimalFormat;
import java.util.Scanner;

/**
 * 知识点：
 * 1.double
 * 2.DecimalFormat df = new DecimalFormat("#.######");
 * 3.df.format();
 * HJ38 求小球落地5次后所经历的路程和第5次
 * 描述
 * 假设一个球从任意高度自由落下，每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时，共经历多少米?第5次反弹多高？
 *
 *
 * 数据范围：输入的小球初始高度满足 1≤n≤1000  ，且保证是一个整数
 *
 * 输入描述：
 * 输入起始高度，int型
 *
 * 输出描述：
 * 分别输出第5次落地时，共经过多少米以及第5次反弹多高。
 * 注意：你可以认为你输出保留六位或以上小数的结果可以通过此题。
 * 示例1
 * 输入：
 * 1
 * 复制
 * 输出：
 * 2.875
 * 0.03125
 */
public class TestHW38 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        double i = in.nextDouble();
        if (i < 1 || i > 1000)return;
        double[] d = new double[2];
        d = test(i, 1, d);
        DecimalFormat df = new DecimalFormat("#.######");
        // df.setRoundingMode(RoundingMode.CEILING);

        System.out.println(df.format(d[0])+"\n"+df.format(d[1]));
    }

    public static double[] test(double i, int num,  double[] d) {
        if(num == 6){
            return d;
        }
        if (num == 1) {
            //经过米数
            d[0] = i;

        } else {
            d[0] += i * 2;
        }
        //反弹高度
        i /= 2;
        d[1] = i;
        num++;
        return test(i, num, d);
    }
}
